package cuiyt.juc.lock;

/**
 * @author cyt
 * @create 2020-05-03 22:58
 */

// 可重入锁
public class demo01 {

    public static void main(String[] args) {
        people people = new people();
        // 开启线程
        new Thread(() -> {
            people.say();
        }, "A").start();

        // 开启线程
        new Thread(() -> {
            people.say();
        }, "B").start();
    }
}

class people {
    public synchronized void say() {
        System.out.println(Thread.currentThread().getName() + "say");
        walk(); // 在拿到 say 调用者锁后， 又重新获得了一次walk调用者的锁
        // 可以次获得一把锁， 而不会出现死锁的问多题
    }
    public synchronized void walk() {
        System.out.println(Thread.currentThread().getName() + "walk");
    }
}
